#include <stdio.h>
#include <unistd.h>


#if 0

用来获取系统执行的配置信息。例如页大小、最大页数、cpu个数、打开句柄的最大个数等等。

#endif

#define ONE_MB (1024 * 1024)

int main()
{
    double sc_clk_tck = sysconf(_SC_CLK_TCK);

    printf("    %lf\n", sc_clk_tck);        // 100.000000
    printf("The number of processors configured is :%ld\n",
        sysconf(_SC_NPROCESSORS_CONF));     // 4
    printf("The number of processors currently online (available) is :%ld\n",
        sysconf(_SC_NPROCESSORS_ONLN));     // 4
    printf ("The pagesize: %ld\n", sysconf(_SC_PAGESIZE));              // 4096
    printf ("The number of pages: %ld\n", sysconf(_SC_PHYS_PAGES));     // 995412
    printf ("The number of available pages: %ld\n", sysconf(_SC_AVPHYS_PAGES));     // 29163
    printf ("The memory size: %lld MB\n", 
        (long long)sysconf(_SC_PAGESIZE) * (long long)sysconf(_SC_PHYS_PAGES) / ONE_MB );   // 3888
    printf ("The number of files max opened:: %ld\n", sysconf(_SC_OPEN_MAX));               // 1024
    printf ("The number of ticks per second: %ld\n", sysconf(_SC_CLK_TCK));          // 100
    printf ("The number of ticks per second: %lf\n", sysconf(_SC_CLK_TCK));          // 0.000000
    printf("The number of ticks per second: %lf\n", (double)sysconf(_SC_CLK_TCK));  // 100.000000
    printf ("The max length of host name: %ld\n", sysconf(_SC_HOST_NAME_MAX));      // 64
    printf ("The max length of login name: %ld\n", sysconf(_SC_LOGIN_NAME_MAX));    // 256

    return 0;
}
